/**
 * 封装fetch，简化异步请求的处理
 * @param {string} url
 * @param {object} options
 */
export const request = (url, options) =>
    fetch(url, options).then(res => {
        // 500
        if(!res.ok && res.status !== 400)
            return res.text().then(text => ({
                isOk: false,
                statusCode: res.status,
                message: text
            }));
        return res.json().then(data => {
            //200
            if(res.ok)
                return {
                    isOk: true,
                    statusCode: res.status,
                    data: data.payload
                }; // 400

            return {
                isOk: false,
                statusCode: res.status,
                message: data.message
            };
        });
    });

export const hasPermissions = (data, name) => Array.isArray(data) && data.length > 0 && data.some(item => item === name);
import {EnumItem, Enum} from 'Shared/utils/enumType';
const CN = 'zh-CN';
//企业类型
export const companyType = Object.freeze({
    __proto__: Enum,
    主机厂: 1,
    总代: 2,
    properties: Object.freeze({
        '1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '主机厂'
        }),
        '2': Object.freeze({
            __proto__: EnumItem,
            [CN]: '总代',
        })
    })
});
//PI形式发票状态
export const piProformaInvoiceStatus = Object.freeze({
    __proto__: Enum,
    新建: 1,
    确认: 2,
    PI取消: 3,
    发票确认: 4,
    作废: -1,
    properties: Object.freeze({
        '1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '新建'
        }),
        '2': Object.freeze({
            __proto__: EnumItem,
            [CN]: '确认',
        }),
        '3': Object.freeze({
            __proto__: EnumItem,
            [CN]: 'PI取消',
        }),
        '4': Object.freeze({
            __proto__: EnumItem,
            [CN]: '发票确认',
        }),
        '-1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '作废',
        })
    })
});

//整车销售订单业务类型
export const saleOrderBusinessType = Object.freeze({
    __proto__: Enum,
    CBU: 1,
    KD: 2,
    properties: Object.freeze({
        '1': Object.freeze({
            __proto__: EnumItem,
            [CN]: 'CBU'
        }),
        '2': Object.freeze({
            __proto__: EnumItem,
            [CN]: 'KD',
        })
    })
});

//整车销售订单状态
export const saleOrderStatus = Object.freeze({
    __proto__: Enum,
    新建: 1,
    提交: 2,
    审核中: 3,
    审核通过: 4,
    审核不通过: 5,
    财务取消: 6,
    作废: -1,
    properties: Object.freeze({
        '1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '新建'
        }),
        '2': Object.freeze({
            __proto__: EnumItem,
            [CN]: '提交',
        }),
        '3': Object.freeze({
            __proto__: EnumItem,
            [CN]: '审核中'
        }),
        '4': Object.freeze({
            __proto__: EnumItem,
            [CN]: '审核通过',
        }),
        '5': Object.freeze({
            __proto__: EnumItem,
            [CN]: '审核不通过'
        }),
        '6': Object.freeze({
            __proto__: EnumItem,
            [CN]: '财务取消',
        }),
        '-1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '作废'
        })
    })
});

//销售确认书状态
export const salesConfirmationStatus = Object.freeze({
    __proto__: Enum,
    新建: 1,
    提交: 2,
    审核中: 3,
    审核通过: 4,
    审核不通过: 5,
    作废: -1,
    properties: Object.freeze({
        '1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '新建'
        }),
        '2': Object.freeze({
            __proto__: EnumItem,
            [CN]: '提交',
        }),
        '3': Object.freeze({
            __proto__: EnumItem,
            [CN]: '审核中'
        }),
        '4': Object.freeze({
            __proto__: EnumItem,
            [CN]: '审核通过',
        }),
        '5': Object.freeze({
            __proto__: EnumItem,
            [CN]: '审核不通过'
        }),
        '-1': Object.freeze({
            __proto__: EnumItem,
            [CN]: '作废'
        })
    })
});

